Platform Explorer / Nuxeo Platform 2023.22

Component org.nuxeo.ecm.platform.routing.dashboard.layouts

Requirements

Resolution Order

768
The resolution order represents the order in which this component has been resolved by the Nuxeo Runtime framework.
You can influence this order by adding "require" tags in your component declaration, to make sure it is resolved after another component.

Contributions

XML Source

<?xml version="1.0" encoding="UTF-8"?>
<component name="org.nuxeo.ecm.platform.routing.dashboard.layouts">
  <require>org.nuxeo.ecm.platform.routing.dashboard.actions</require>
  <require>org.nuxeo.ecm.platform.routing.actions</require>

  <extension target="org.nuxeo.ecm.core.schema.TypeService"
    point="schema">
    <schema name="user_open_tasks_cv" prefix="user_open_tasks_cv"
      src="schemas/user_open_tasks_cv.xsd" />
  </extension>

  <extension target="org.nuxeo.ecm.core.schema.TypeService"
    point="doctype">
    <doctype name="user_open_tasks_cv" extends="Document">
      <facet name="ContentViewDisplay" />
      <schema name="user_open_tasks_cv" />
    </doctype>
  </extension>

  <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
    point="widgettypes">

    <widgetType name="listing_process_task">
      <configuration>
        <title>Listing process task link</title>
        <documentation>
          Two fields are required:
          <ul>
            <li>A field to map the task</li>
            <li>A field to map the targetDocumentId on the task</li>
          </ul>
        </documentation>
        <sinceVersion>5.7.3</sinceVersion>
        <categories>
          <category>routing</category>
        </categories>
        <supportedModes>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/listing/listing_process_task_widget_template.xhtml
      </property>
    </widgetType>

    <widgetType name="listing_workflow_name_task">
      <configuration>
        <title>Listing the name of the workflow that created the task
        </title>
        <documentation>
          A field is required:
          <ul>
            <li>A field to map the processId on the task</li>
          </ul>
        </documentation>
        <sinceVersion>5.7.3</sinceVersion>
        <categories>
          <category>routing</category>
        </categories>
        <supportedModes>
          <mode>view</mode>
        </supportedModes>
        <fields>
          <list>false</list>
          <complex>false</complex>
          <supportedTypes>
            <type>string</type>
          </supportedTypes>
        </fields>
      </configuration>
      <handler-class>
        org.nuxeo.ecm.platform.forms.layout.facelets.plugins.TemplateWidgetTypeHandler
      </handler-class>
      <property name="template">
        /widgets/listing/listing_workflow_name_task_widget_template.xhtml
      </property>
    </widgetType>
  </extension>



  <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
    point="widgets">

    <!-- Listing widgets -->
    <widget name="routing_task_name" type="text">
      <labels>
        <label mode="any">label.workflow.task.name</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>data.nt.name</field>
      </fields>
      <properties mode="any">
        <property name="localize">true</property>
      </properties>
    </widget>

    <widget name="routing_task_target_document" type="multipleDocumentsSuggestion">
      <labels>
        <label mode="any">label.document</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>data.nt.targetDocumentsIds</field>
      </fields>
    </widget>

    <widget name="routing_task_duedate" type="datetime">
      <labels>
        <label mode="any">label.widget.task_step.dueDate</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>data.nt.dueDate</field>
      </fields>
      <properties mode="any">
        <property name="format">#{nxu:dateAndTimeFormatter('medium')}
        </property>
        <property name="timeZone">#{timeZone}</property>
      </properties>
    </widget>

    <widget name="routing_task_directive" type="text">
      <labels>
        <label mode="any">label.widget.task_step.directive</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>data.nt.directive</field>
      </fields>
      <properties mode="any">
        <property name="localize">true</property>
      </properties>
    </widget>

    <widget name="routing_task_actors" type="multiplePrefixedUsersSuggestion">
      <labels>
        <label mode="any">label.document.route.content.header.actors
        </label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>data.nt.actors</field>
      </fields>
      <properties mode="any">
        <property name="localize">true</property>
      </properties>
    </widget>

    <widget name="routing_task_comments" type="list">
      <labels>
        <label mode="any">label.content.header.comments</label>
      </labels>
      <fields>
        <field>data.nt.taskComments</field>
      </fields>
      <properties mode="any">
        <property name="localize">true</property>
        <property name="hideSubLabels">true</property>
      </properties>
      <subWidgets>
        <widget name="comment" type="text">
          <fields>
            <field></field>
          </fields>
        </widget>
      </subWidgets>
    </widget>

    <widget name="routing_task_workflow_name" type="listing_workflow_name_task">
      <labels>
        <label mode="any">label.review.type</label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>data.nt.processId</field>
      </fields>
      <properties mode="any">
        <property name="localize">true</property>
      </properties>
    </widget>

    <widget name="routing_task_process_btn" type="listing_process_task">
      <labels>
        <label mode="any"></label>
      </labels>
      <translated>true</translated>
      <fields>
        <field>data</field>
        <field>data.nt.targetDocumentsIds</field>
      </fields>
      <properties mode="any">
        <property name="tab">TAB_ROUTE_WORKFLOW</property>
      </properties>
    </widget>
    <!-- Listing widgets -->

    <widget name="workflowTabs" type="tabs">
      <properties mode="view">
        <property name="actionsDisplay">links</property>
        <property name="addForm">true</property>
        <property name="useAjaxForm">false</property>
        <property name="category">WORKFLOW_DASHBOARD</property>
        <property name="actions">#{webActions.getActionsList('WORKFLOW_DASHBOARD')}</property>
        <property name="currentTabAction">#{webActions.getCurrentTabAction('WORKFLOW_DASHBOARD')}</property>
        <property name="overallDisplay">horizontal_block</property>
      </properties>
    </widget>

  </extension>

  <extension target="org.nuxeo.ecm.platform.forms.layout.WebLayoutManager"
    point="layouts">

    <layout name="routing_task_listing">
      <templates>
        <template mode="any">
          /layouts/layout_listing_ajax_template.xhtml
        </template>
        <template mode="csv">
          /layouts/layout_listing_csv_template.xhtml
        </template>
        <template mode="pdf">
          /layouts/layout_listing_pdf_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="showListingHeader">true</property>
        <property name="showRowEvenOddClass">true</property>
        <property name="display">table</property>
      </properties>
      <columns>
        <column>
          <properties mode="any">
            <property name="isListingSelectionBox">true</property>
            <property name="useFirstWidgetLabelAsColumnHeader">false</property>
            <property name="columnStyleClass">iconColumn</property>
          </properties>
          <properties mode="csv">
            <property name="isHidden">true</property>
          </properties>
          <properties mode="pdf">
            <property name="isHidden">true</property>
          </properties>
          <widget>listing_ajax_selection_box</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">nt:name</property>
          </properties>
          <widget>routing_task_name</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>routing_task_target_document</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">nt:directive</property>
          </properties>
          <widget>routing_task_directive</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">nt:dueDate</property>
          </properties>
          <widget>routing_task_duedate</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>routing_task_actors</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>routing_task_comments</widget>
        </column>
      </columns>
    </layout>

    <layout name="routing_user_open_task_listing">
      <templates>
        <template mode="any">
          /layouts/layout_listing_ajax_template.xhtml
        </template>
        <template mode="csv">
          /layouts/layout_listing_csv_template.xhtml
        </template>
        <template mode="pdf">
          /layouts/layout_listing_pdf_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="showListingHeader">true</property>
        <property name="showRowEvenOddClass">true</property>
        <property name="display">table</property>
      </properties>
      <columns>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">nt:name</property>
          </properties>
          <widget>routing_task_workflow_name</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>routing_task_name</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>routing_task_target_document</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">nt:directive</property>
          </properties>
          <widget>routing_task_directive</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">nt:dueDate</property>
          </properties>
          <widget>routing_task_duedate</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
          </properties>
          <widget>routing_task_actors</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">false</property>
          </properties>
          <widget>routing_task_process_btn</widget>
        </column>
      </columns>
    </layout>

    <layout name="routing_user_open_task_search_layout">
      <templates>
        <template mode="any">/layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <properties mode="any">
            <property name="nxl_colspan_0">1</property>
          </properties>
          <widget>task_name</widget>
        </row>
        <row>
          <properties mode="any">
            <property name="nxl_colspan_0">1</property>
            <property name="nxl_colspan_1">1</property>
          </properties>
          <widget>task_dueDate_min</widget>
          <widget>task_dueDate_max</widget>
        </row>
      </rows>
      <widget name="task_name" type="select2Widget">
        <labels>
          <label mode="any">label.workflow.task.name</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>user_open_tasks_cv:task_name</field>
        </fields>
        <properties mode="any">
          <property name="operationId">Context.GetTaskNames</property>
          <property name="minChars">0</property>
          <property name="idProperty">nt:name</property>
          <property name="initOperationId">Context.GetTaskNames</property>
          <property name="labelProperty">dc:title</property>
          <property name="documentSchemas">task,dublincore</property>
        </properties>
      </widget>
      <widget name="task_dueDate_min" type="datetime">
        <labels>
          <label mode="any">label.widget.task_step.dueDate</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>user_open_tasks_cv:task_dueDate_min</field>
        </fields>
      </widget>
      <widget name="task_dueDate_max" type="datetime">
        <labels>
          <label mode="any">label.search.and</label>
        </labels>
        <translated>true</translated>
        <fields>
          <field>user_open_tasks_cv:task_dueDate_max</field>
        </fields>
      </widget>
    </layout>

    <!--@since 5.8, layouts for task resolution screen on User home, applies
      to a Task object -->
    <layout name="routing_task_general_info">
      <templates>
        <template mode="any">
          /layouts/layout_default_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <widget>task_workflow_name</widget>
        </row>
        <row>
          <widget>task_show_workflow_graph</widget>
        </row>
        <row>
          <widget>task_actors</widget>
        </row>
        <row>
          <widget>task_delegated_users</widget>
        </row>
        <row>
          <widget>task_duedate</widget>
        </row>
        <row>
          <widget>task_simple_directive</widget>
        </row>
      </rows>
    </layout>

    <layout name="routing_task_actions_layout">
      <templates>
        <template mode="any">/layouts/layout_grid_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <properties mode="any">
            <property name="gridRowStyleClass">floatR</property>
          </properties>
          <widget>go_back_to_tasks_view_widget</widget>
          <widget>delegate_task_widget</widget>
          <widget>reassign_task_widget</widget>
        </row>
      </rows>
      <widget name="go_back_to_tasks_view_widget" type="documentActionWithForms">
        <fields>
          <field>#{routingTaskActions.getTaskInfo(layoutValue,
            true)}
          </field>
        </fields>
        <properties widgetMode="any">
          <property name="actionId">go_back_to_tasks_view</property>
          <property name="actionStyleClass">smallButton</property>
          <property name="actionsDisplay">buttons</property>
          <property name="useAjaxForm">true</property>
          <property name="ignoreTemplateProperty">true</property>
          <property name="actionContextDocument">#{layoutValue.getDocument()}
          </property>
        </properties>
      </widget>
      <widget name="reassign_task_widget" type="documentActionWithForms">
        <fields>
          <field>#{routingTaskActions.getTaskInfo(layoutValue,
            true)}
          </field>
        </fields>
        <properties widgetMode="any">
          <property name="actionId">reassignTask</property>
          <property name="actionStyleClass">smallButton</property>
          <property name="actionsDisplay">buttons</property>
          <property name="useAjaxForm">true</property>
          <property name="ignoreTemplateProperty">true</property>
          <property name="actionContextDocument">#{layoutValue.getDocument()}
          </property>
        </properties>
        <widgetModes>
          <mode value="any">#{routingTaskActions.canBeReassign()?'edit':'hidden'}
          </mode>
        </widgetModes>
      </widget>
      <widget name="delegate_task_widget" type="documentActionWithForms">
        <fields>
          <field>#{routingTaskActions.getTaskInfo(layoutValue,
            true)}
          </field>
        </fields>
        <properties widgetMode="any">
          <property name="actionId">delegateTask</property>
          <property name="actionStyleClass">smallButton</property>
          <property name="actionsDisplay">buttons</property>
          <property name="useAjaxForm">true</property>
          <property name="ignoreTemplateProperty">true</property>
          <property name="actionContextDocument">#{layoutValue.getDocument()}
          </property>
        </properties>
      </widget>
    </layout>

    <layout name="routing_task_resolution_layout">
      <templates>
        <template mode="any">/layouts/layout_grid_template.xhtml
        </template>
      </templates>
      <rows>
        <row>
          <properties mode="any">
            <property name="nxl_gridStyleClass_0">gridStyle7</property>
            <property name="nxl_gridStyleClass_1">gridStyle5</property>
          </properties>
          <widget>container_0</widget>
          <widget>container_01</widget>
        </row>
        <row>
          <properties mode="any">
            <property name="nxl_gridStyleClass_0">gridStyle5</property>
            <property name="nxl_gridStyleClass_1">gridStyle7</property>
          </properties>
          <widget>container</widget>
          <widget>container_1</widget>
        </row>
        <row>
          <properties mode="any">
            <property name="nxl_gridStyleClass_0">gridStyle12</property>
          </properties>
          <widget>container_2</widget>
        </row>
      </rows>
      <widget name="container_0" type="container">
        <labels>
          <label mode="any"></label>
        </labels>
        <translated>false</translated>
        <fields>
          <field></field>
        </fields>
        <controls mode="any">
          <control name="handleLabels">true</control>
        </controls>
        <properties mode="any">
          <property name="hideSubLabels">true</property>
          <property name="styleClass">description_block</property>
        </properties>
        <subWidgetRefs>
          <widget>task_workflow_title</widget>
        </subWidgetRefs>
      </widget>
      <widget name="container_01" type="container">
        <labels>
          <label mode="any"></label>
        </labels>
        <translated>false</translated>
        <fields>
          <field></field>
        </fields>
        <controls mode="any">
          <control name="handleLabels">true</control>
        </controls>
        <properties mode="any">
          <property name="hideSubLabels">true</property>
          <property name="styleClass">horizontal_block</property>
        </properties>
        <subWidgets>
          <widget name="task_actions" type="layout">
            <properties mode="any">
              <property name="name">routing_task_actions_layout
              </property>
            </properties>
          </widget>
        </subWidgets>
      </widget>
      <widget name="container" type="container">
        <labels>
          <label mode="any"></label>
        </labels>
        <translated>false</translated>
        <fields>
          <field></field>
        </fields>
        <controls mode="any">
          <control name="handleLabels">true</control>
        </controls>
        <properties widgetMode="any">
          <property name="styleClass">fullWidth
          </property>
        </properties>
        <subWidgets>
          <widget name="sub0" type="layout">
            <labels>
              <label mode="any">routing_task_general_info</label>
            </labels>
            <translated>false</translated>
            <fields />
            <properties widgetMode="view">
              <property name="name">routing_task_general_info
              </property>
            </properties>
            <controls mode="any">
              <control name="handleLabels">true</control>
              <control name="requireSurroundingForm">true</control>
            </controls>
          </widget>
        </subWidgets>
      </widget>
      <widget name="container_1" type="container">
        <labels>
          <label mode="any"></label>
        </labels>
        <translated>false</translated>
        <fields>
          <field></field>
        </fields>
        <controls mode="any">
          <control name="handleLabels">true</control>
          <control name="requireSurroundingForm">true</control>
        </controls>
        <properties widgetMode="any">
          <property name="styleClass">grayBox</property>
          <property name="hideSubLabels">true</property>
        </properties>
        <subWidgetRefs>
          <widget>task_layout_with_actions</widget>
        </subWidgetRefs>
      </widget>
      <widget name="container_2" type="container">
        <labels>
          <label mode="any"></label>
        </labels>
        <translated>false</translated>
        <fields>
          <field></field>
        </fields>
        <controls mode="any">
          <control name="handleLabels">true</control>
        </controls>
        <subWidgets>
          <widget name="sub0" type="contentViewWithForms">
            <labels>
              <label mode="any"></label>
            </labels>
            <translated>false</translated>
            <properties widgetMode="view">
              <property name="showRefreshCommand">false</property>
              <property name="foldable">false</property>
              <property name="showSyndicationLinks">false</property>
              <property name="showPDFExport">false</property>
              <property name="showCSVExport">false</property>
              <property name="showPageSizeSelector">false</property>
              <property name="showFilterForm">false</property>
              <property name="contentViewName">task_target_documents</property>
            </properties>
            <controls mode="any">
              <control name="handleLabels">true</control>
            </controls>
          </widget>
        </subWidgets>
      </widget>
    </layout>

    <layout name="task_related_documents_listing">
      <templates>
        <template mode="any">/layouts/layout_listing_template.xhtml
        </template>
        <template mode="csv">
          /layouts/layout_listing_csv_template.xhtml
        </template>
        <template mode="pdf">
          /layouts/layout_listing_pdf_template.xhtml
        </template>
      </templates>
      <properties mode="any">
        <property name="showListingHeader">true</property>
        <property name="showRowEvenOddClass">true</property>
      </properties>
      <columns>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">false</property>
            <property name="columnStyleClass">iconColumn</property>
          </properties>
          <widget>listing_icon_type</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">dc:title</property>
          </properties>
          <widget>listing_title_link</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="columnStyleClass">iconColumn</property>
          </properties>
          <properties mode="csv">
            <property name="isHidden">true</property>
          </properties>
          <properties mode="pdf">
            <property name="isHidden">true</property>
          </properties>
          <widget>listing_lock_icon</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">dc:modified</property>
            <property name="defaultSortAscending">false</property>
          </properties>
          <widget>listing_modification_date</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">dc:lastContributor</property>
          </properties>
          <widget>listing_last_contributor</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="columnStyleClass">iconColumn</property>
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="isSortable">false</property>
          </properties>
          <widget>listing_version</widget>
        </column>
        <column>
          <properties mode="any">
            <property name="useFirstWidgetLabelAsColumnHeader">true</property>
            <property name="sortPropertyName">
              ecm:currentLifeCycleState
            </property>
          </properties>
          <widget>listing_lifecycle</widget>
        </column>
      </columns>
    </layout>

  </extension>

</component>